import { createStore,applyMiddleware,compose } from "redux";
import reducer from './reducer'
import thunk from 'redux-thunk'  // 异步reducer 变化
import logger from 'redux-logger'  // redux 调试更优秀  

// 没有安装redux-dev-tool 使用compose 合并-再合并(不会出错，避免报错)
const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ 
    || compose;

const store = createStore(reducer,
    // 合并成一个中间件对象，作为createStore第二个参数
    // 中间件负责处理 UI 和 redux中间的数据交流
    compose(
        // UI 组件  中间件s redux-thunk -> 交给applyMiddleware启用、logger   Store
        composeEnhancers(applyMiddleware(thunk)),
        // 启用 logger 中间件
        applyMiddleware(logger)
    )
)

export default store